import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
// 引入reset.css初始化
import './assets/css/reset.css'
// 引入flexiable.js
import 'lib-flexible/flexible.js'
import 'amfe-flexible'
// 引入小图标
import './assets/css/iconfont.css'
// 引入swiper
import VueAwesomeSwiper from 'vue-awesome-swiper'
import 'swiper/dist/css/swiper.min.css'
// 引用图片懒加载
import VueLazyload from 'vue-lazyload'
// 引入加载图片的路径
import loading from '@/assets/images/lazy/loading.gif'
// 引用vant
import {
  Button,
  Tab,
  Tabs,
  Form,
  Dialog,
  Toast,
  Field,
  Switch,
  Rate,
  Icon,
  Tag,
  List
} from 'vant'
// 绑定fastclick
import FastClick from 'fastclick'
FastClick.attach(document.body)

Vue.config.productionTip = false
Vue.use(Button)
  .use(Tab)
  .use(Tabs)
  .use(Form)
  .use(Field)
  .use(Switch)
  .use(List)
  .use(Toast)
  .use(Dialog)
  .use(Rate)
  .use(Icon)
  .use(Tag)
Vue.use(VueAwesomeSwiper)
Vue.use(VueLazyload, {
  loading
})
// 注册时间函数
Vue.filter('format', function(value, arg) {
  function dateFormat(date, format) {
    if (typeof date === 'string') {
      var mts = date.match(/(\/Date\((\d+)\)\/)/)
      if (mts && mts.length >= 3) {
        date = parseInt(mts[2])
      }
    }
    date = new Date(date)
    if (!date || date.toUTCString() === 'Invalid Date') {
      return ''
    }
    var map = {
      M: date.getMonth() + 1, // 月份
      d: date.getDate(), // 日
      h: date.getHours(), // 小时
      m: date.getMinutes(), // 分
      s: date.getSeconds(), // 秒
      q: Math.floor((date.getMonth() + 3) / 3), // 季度
      S: date.getMilliseconds() // 毫秒
    }

    format = format.replace(/([yMdhmsqS])+/g, function(all, t) {
      var v = map[t]
      if (v !== undefined) {
        if (all.length > 1) {
          v = '0' + v
          v = v.substr(v.length - 2)
        }
        return v
      } else if (t === 'y') {
        return (date.getFullYear() + '').substr(4 - all.length)
      }
      return all
    })
    return format
  }

  return dateFormat(value, arg)
})
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
